Signaling system 7 (SS7) is the standard signaling protocol that has been used to control voice calls in public telephone networks since the late 1980s. In addition to the control of voice calls, SS7 signaling enables modern telephony services, such as toll-free free calling, call forwarding, caller ID, local number portability (LNP), and even mobile communications services. SS7 network nodes used in setting up calls and providing additional services include service switching points (SSPs), signal transfer points (STPs), and service control points (SCPs). SSPs perform call setup signaling and control voice trunks over which calls are carried. STPs route SS7 messages between other network nodes. SCPs provide database services to SSPs.
FIG. 1 illustrates a conventional SS7 network. In FIG. 1, the SS7 network includes STPs 100, 102, 104, and 106, SSP 108, and SCPs 110 and 112. STPs 100, 102, 104, and 106 are interconnected by linksets LS1-LS6. Each linkset includes a plurality of channels, which are referred to as signaling links. Each pair of nodes is connected by a single linkset. Messages are distributed among links in a linkset using load balancing algorithms. STPs 100, 102, 104, and 106 maintain routing tables that contain signaling routes corresponding to linksets. In SS7 networks, signaling messages are routed based on destination point code (DPC) values. When a signal transfer point receives a message, it examines the destination point code of the message and selects a route from the routing table. The route corresponds to a linkset. The signal transfer point then selects a link within the linkset and forwards the message over the link. STPs 100, 102, 104, and 106 also maintain status information associated with SS7 signaling routes. For example, if a signaling route becomes unavailable, the signal transfer point preferably detects this fact and marks the route unavailable in its route tables. Similarly, if a route becomes congested, the signal transfer point marks the route as congested in its route table.
In an SS7 network, the above-described route status management functionality is accomplished, in part, through the use of specific network management messages. A sample structure of a typical SS7 message signaling unit (MSU) 200 that carries network management information is illustrated in FIG. 2. It will be appreciated by those skilled in the art of SS7 signaling communications that signaling information field (SIF) 202 of MSU 200 can contain data associated with a particular point code that is experiencing difficulty. Additional status information and other relevant maintenance codes may also be included in SIF parameter 202, depending upon the particular type of network management message being sent. The service indicator octet (SIO) 204 is used by level-three to identify the type of protocol used at level four (such as the ISDN user part (ISUP) or transaction capabilities application part (TCAP). SIO 204 also has additional bits that can be used for message priorities, as discussed further below.
Returning to FIG. 1, messages may be sent from, for example, SSP 108 to either of SCPs 110 and 112 via STP 100 using any one of a plurality of routes. For example, one route can include STP 100, LS1, and STP 104. For the present purposes, this route can be referred to as the primary route. Alternate routes, however, exist. For example, alternate routes can include STP 100, LS3, and STP 106 or STP 100, LS5, STP 102, LS2, and STP 106. Conventionally, routing is performed by assigning a relative cost to each route and assigning traffic to the route based on the relative cost.
In the example illustrated in FIG. 1, STP 100 may determine that congestion exists on the route corresponding to signaling linkset LS1 using any of a variety of methods for detecting congestion. For example, the number of messages waiting to be sent over the route and being held in the transmission buffer may be counted to determine if a threshold that indicates congestion on the route is exceeded. If STP 100 determines there is congestion on the route corresponding to LS1, when an MSU is received from SSP 108 at STP 100 for routing over LS1, STP 100 may discard the MSU based upon congestion level and send a transfer controlled (TFC) message with a congestion level indicator to SSP 108. The congestion level indicator conveys the minimum priority level a message must possess before it will be routed over the congested route. STP 100 sets the congestion level based on the severity of the congestion. For messages sent to STP 100 for routing, priorities are assigned by the originating signaling point, in this case SSP 108, and stored as a two-bit priority level in SIO field 204 of MSU 200. The priority level indicator is typically a two-bit code that indicates the relative priority of the message. When a message is received by STP 100, the two-bit priority level (0, 1, 2, or 3) is read from SIO field 204 and compared to the current congestion level. Only messages of the same or higher priority level than indicated by the current congestion level will be routed by STP 100 via LS1. Messages with lower priorities destined for LS1 will be discarded by STP 100, and a corresponding TFC message will be sent to the originating signaling point.
If LS1 is congested at the same congestion level for a long enough period of time, e.g., 10-120 seconds as determined by an SS7-specified congestion timer (referred to as T31), LS1 is considered to be in link failure. Once the LS1 is considered to be in link failure, traffic from SSP 108 to SCPs 110 and 112 can be sent over an alternate route. However, immediately after congestion occurs (prior to the expiration of T31), or when the congestion level changes such that T31 does not expire, traffic sent by SSP 108 and routed to SCPs 110 or 112 via LS1 will be limited to higher priority traffic. Lower priority traffic is discarded, rather than being re-routed, for the duration of timer T31 or indefinitely if congestion levels change to continually reset T31.
In some cases, traffic may be evenly distributed within the links of linkset LS1 to minimize congestion. However, several of the links in linkset LS1 may become congested. In such a case, traffic is discarded according to the TFC procedure described above, even when a viable alternate route, such as LS3 or LS5 exists. That is, there is currently no procedure for re-routing messages to an alternate route based on a primary route experiencing congestion (prior to route failure).
Accordingly, there exists a need for methods, systems, and computer program products for re-routing signaling messages over alternate routes when a route is experiencing congestion but is not in failure.